g_return_val_if_fail (colors != NULL, NULL);
g_return_val_if_fail (colors->ref_count > 0, colors);
- g_atomic_int_add ((volatile int *)&colors->ref_count, 1);
+ g_atomic_int_inc ((volatile int *)&colors->ref_count);
return colors;
}
g_return_if_fail (colors != NULL);
g_return_if_fail (colors->ref_count > 0);
- if (g_atomic_int_exchange_and_add ((volatile int *)&colors->ref_count, -1) - 1 == 0)
+ if (g_atomic_int_dec_and_test ((volatile int *)&colors->ref_count))
g_slice_free (StIconColors, colors);
}